home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / AIncludes / OCEMessaging.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  41.1 KB  |  1,310 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEMessaging.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Messaging Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__OCEMESSAGING__') = 'UNDEFINED' THEN
  18. __OCEMESSAGING__ SET 1
  19.  
  20.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  21.     include 'Files.a'
  22.     ENDIF
  23.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  24.     include 'MacTypes.a'
  25.     ENDIF
  26.  
  27.     IF &TYPE('__DIGITALSIGNATURE__') = 'UNDEFINED' THEN
  28.     include 'DigitalSignature.a'
  29.     ENDIF
  30.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  31.     include 'OCE.a'
  32.     ENDIF
  33.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  34.     include 'OCEAuthDir.a'
  35.     ENDIF
  36.  
  37. ; *****************************************************************************
  38. ;  Definitions common to OCEMessaging and to OCEMail. These relate to addressing,
  39. ;message ids and priorities, etc. 
  40.  
  41. ;  Values of IPMPriority 
  42.  
  43. kIPMAnyPriority                    EQU        0                    ; FOR FILTER ONLY 
  44. kIPMNormalPriority                EQU        1
  45. kIPMLowPriority                    EQU        2
  46. kIPMHighPriority                EQU        3
  47. ; typedef Byte                             IPMPriority
  48.  
  49. ;  Values of IPMAccessMode 
  50.  
  51. kIPMAtMark                        EQU        0
  52. kIPMFromStart                    EQU        1
  53. kIPMFromLEOM                    EQU        2
  54. kIPMFromMark                    EQU        3
  55. ; typedef unsigned short                 IPMAccessMode
  56.  
  57.  
  58. kIPMUpdateMsgBit                EQU        4
  59. kIPMNewMsgBit                    EQU        5
  60. kIPMDeleteMsgBit                EQU        6
  61. ;  Values of IPMNotificationType 
  62.  
  63. kIPMUpdateMsgMask                EQU        $10
  64. kIPMNewMsgMask                    EQU        $20
  65. kIPMDeleteMsgMask                EQU        $40
  66. ; typedef Byte                             IPMNotificationType
  67.  
  68. ;  Values of IPMSenderTag 
  69.  
  70. kIPMSenderRStringTag            EQU        0
  71. kIPMSenderRecordIDTag            EQU        1
  72. ; typedef unsigned short                 IPMSenderTag
  73.  
  74.  
  75. kIPMFromDistListBit                EQU        0
  76. kIPMDummyRecBit                    EQU        1
  77. kIPMFeedbackRecBit                EQU        2                    ; should be redirected to feedback queue 
  78. kIPMReporterRecBit                EQU        3                    ; should be redirected to reporter original queue 
  79. kIPMBCCRecBit                    EQU        4                    ; this recipient is blind to all recipients of message 
  80. ;  Values of OCERecipientOffsetFlags 
  81.  
  82. kIPMFromDistListMask            EQU        $01
  83. kIPMDummyRecMask                EQU        $02
  84. kIPMFeedbackRecMask                EQU        $04
  85. kIPMReporterRecMask                EQU        $08
  86. kIPMBCCRecMask                    EQU        $10
  87. ; typedef Byte                             OCERecipientOffsetFlags
  88.  
  89. OCECreatorType            RECORD 0
  90. msgCreator                 ds.l    1                ; offset: $0 (0)
  91. msgType                     ds.l    1                ; offset: $4 (4)
  92. sizeof                     EQU *                    ; size:   $8 (8)
  93.                         ENDR
  94.  
  95. kIPMTypeWildCard                EQU        'ipmw'
  96. kIPMFamilyUnspecified            EQU        0
  97. kIPMFamilyWildCard                EQU        $3F3F3F3F            ; '????' * well known signature 
  98. kIPMSignature                    EQU        'ipms'                ; base type * well known message types 
  99. kIPMReportNotify                EQU        'rptn'                ; routing feedback * well known message block types 
  100. kIPMEnclosedMsgType                EQU        'emsg'                ; enclosed (nested) message 
  101. kIPMReportInfo                    EQU        'rpti'                ; recipient information 
  102. kIPMDigitalSignature            EQU        'dsig'                ; digital signature 
  103. ;  Values of IPMMsgFormat 
  104.  
  105. kIPMOSFormatType                EQU        1
  106. kIPMStringFormatType            EQU        2
  107. ; typedef unsigned short                 IPMMsgFormat
  108.  
  109. IPMStringMsgType        RECORD 0
  110. f                         ds        Str32
  111. sizeof                     EQU *                    ; size:   $21 (33)
  112.                         ENDR
  113.  
  114.  
  115. TheType                    RECORD 0
  116. msgOSType                 ds        OCECreatorType ; offset: $0 (0)
  117.                          ORG 0
  118. msgStrType                 ds        IPMStringMsgType ; offset: $0 (0)
  119.                          ORG 34
  120. sizeof                     EQU *                    ; size:   $22 (34)
  121.                         ENDR
  122. IPMMsgType                RECORD 0
  123. format                     ds.w    1                ; offset: $0 (0)        ;  IPMMsgFormat
  124. theType                     ds        TheType            ; offset: $2 (2)
  125. sizeof                     EQU *                    ; size:   $24 (36)
  126.                         ENDR
  127. ;Following are the known extension values for IPM addresses handled by Apple.
  128. ;We define the definition of the entn extension below.
  129. ;
  130.  
  131.  
  132. kOCEalanXtn                        EQU        'alan'
  133. kOCEentnXtn                        EQU        'entn'                ; entn = entity name (aka DSSpec) 
  134. kOCEaphnXtn                        EQU        'aphn'
  135. ;Following are the specific definitions for the extension for the standard
  136. ;OCEMail 'entn' addresses.  [Note, the actual extension is formatted as in
  137. ;IPMEntityNameExtension.]
  138. ;
  139.  
  140. ;  entn extension forms 
  141.  
  142. kOCEAddrXtn                        EQU        'addr'
  143. kOCEQnamXtn                        EQU        'qnam'
  144. kOCEAttrXtn                        EQU        'attr'                ; an attribute specification 
  145. kOCESpAtXtn                        EQU        'spat'                ; specific attribute 
  146. ;Following are the specific definitions for standard
  147. ;OCEMail 'aphn' extension value.  
  148. ;
  149. ;All RStrings here are packed (e.g. truncated to length) and even padded (e.g.
  150. ;if length odd, then a pad byte (zero) should be introduced before the next field).
  151. ;
  152. ;The extension value is in the packed form of the following structure:
  153. ;    RString        phoneNumber;
  154. ;    RString        modemType;
  155. ;    Str32        queueuName;
  156. ;
  157. ;The body of phoneNumber compound RString is in the packed form of the following structure:
  158. ;    short         subType;
  159. ;    RString     countryCode;                // used when subType == kOCEUseHandyDial
  160. ;    RString        areaCode;                    // used when subType == kOCEUseHandyDial
  161. ;    RString        phone;                        // used when subType == kOCEUseHandyDial
  162. ;    RString        postFix;                    // used when subType == kOCEUseHandyDial
  163. ;    RString        nonHandyDialString;            // used when subType == kOCEDontUseHandyDial
  164. ;
  165.  
  166. ;  phoneNumber sub type constants 
  167.  
  168. kOCEUseHandyDial                EQU        1
  169. kOCEDontUseHandyDial            EQU        2
  170. ;  FORMAT OF A PACKED FORM RECIPIENT 
  171. ProtoOCEPackedRecipient    RECORD 0
  172. dataLength                 ds.w    1                ; offset: $0 (0)
  173. sizeof                     EQU *                    ; size:   $2 (2)
  174.                         ENDR
  175.  
  176. kOCEPackedRecipientMaxBytes        EQU        4094
  177. OCEPackedRecipient        RECORD 0
  178. dataLength                 ds.w    1                ; offset: $0 (0)
  179. data                     ds.b    4094            ; offset: $2 (2)
  180. sizeof                     EQU *                    ; size:   $1000 (4096)
  181.                         ENDR
  182. IPMEntnQueueExtension    RECORD 0
  183. queueName                 ds        Str32            ; offset: $0 (0)
  184.                          ORG 34
  185. sizeof                     EQU *                    ; size:   $22 (34)
  186.                         ENDR
  187. ;  kOCEAttrXtn 
  188. IPMEntnAttributeExtension RECORD 0
  189. attributeName             ds        AttributeType    ; offset: $0 (0)
  190. sizeof                     EQU *                    ; size:   $24 (36)
  191.                         ENDR
  192. ;  kOCESpAtXtn 
  193. IPMEntnSpecificAttributeExtension RECORD 0
  194. attributeCreationID         ds        AttributeCreationID ; offset: $0 (0)
  195. attributeName             ds        AttributeType    ; offset: $8 (8)
  196. sizeof                     EQU *                    ; size:   $2C (44)
  197.                         ENDR
  198. ;  All IPM entn extensions fit within the following 
  199. IPMEntityNameExtension    RECORD 0
  200. subExtensionType         ds.l    1                ; offset: $0 (0)
  201. specificAttribute         ds        IPMEntnSpecificAttributeExtension ; offset: $4 (4)
  202.                          ORG 4
  203. attribute                 ds        IPMEntnAttributeExtension ; offset: $4 (4)
  204.                          ORG 4
  205. queue                     ds        IPMEntnQueueExtension ; offset: $4 (4)
  206.                          ORG 48
  207. sizeof                     EQU *                    ; size:   $30 (48)
  208.                         ENDR
  209. ;  addresses with kIPMNBPXtn should specify this nbp type 
  210. IPMMsgID                RECORD 0
  211. id                         ds.l    4                ; offset: $0 (0)
  212. sizeof                     EQU *                    ; size:   $10 (16)
  213.                         ENDR
  214.  
  215. ;  Values of IPMHeaderSelector 
  216.  
  217. kIPMTOC                            EQU        0
  218. kIPMSender                        EQU        1
  219. kIPMProcessHint                    EQU        2
  220. kIPMMessageTitle                EQU        3
  221. kIPMMessageType                    EQU        4
  222. kIPMFixedInfo                    EQU        7
  223. ; typedef Byte                             IPMHeaderSelector
  224.  
  225. TheSender                RECORD 0
  226. rString                     ds        RString            ; offset: $0 (0)
  227.                          ORG 0
  228. rid                         ds        PackedRecordID ; offset: $0 (0)
  229. sizeof                     EQU *                    ; size:   $722 (1826)
  230.                         ENDR
  231. IPMSender                RECORD 0
  232. sendTag                     ds.w    1                ; offset: $0 (0)
  233. theSender                 ds        TheSender        ; offset: $2 (2)
  234. sizeof                     EQU *                    ; size:   $724 (1828)
  235.                         ENDR
  236. ; *****************************************************************************
  237. ;  Definitions specific to OCEMessaging 
  238. ; typedef unsigned long                 IPMContextRef
  239.  
  240. ; typedef unsigned long                 IPMQueueRef
  241.  
  242. ; typedef unsigned long                 IPMMsgRef
  243.  
  244. ; typedef unsigned long                 IPMSeqNum
  245.  
  246. IPMProcHint                RECORD 0
  247. f                         ds        Str32
  248. sizeof                     EQU *                    ; size:   $21 (33)
  249.                         ENDR
  250.  
  251.  
  252. IPMQueueName            RECORD 0
  253. f                         ds        Str32
  254. sizeof                     EQU *                    ; size:   $21 (33)
  255.                         ENDR
  256.  
  257.  
  258. IPMFixedHdrInfo            RECORD 0
  259. version                     ds.w    1                ; offset: $0 (0)
  260. authenticated             ds.b    1                ; offset: $2 (2)
  261. signatureEnclosed         ds.b    1                ; offset: $3 (3)        ;   digital signature enclosed 
  262. msgSize                     ds.l    1                ; offset: $4 (4)
  263. notification             ds.b    1                ; offset: $8 (8)
  264. priority                 ds.b    1                ; offset: $9 (9)
  265. blockCount                 ds.w    1                ; offset: $A (10)
  266. originalRcptCount         ds.w    1                ; offset: $C (12)        ;         original number of recipients 
  267. refCon                     ds.l    1                ; offset: $E (14)        ;         Client defined data 
  268. reserved                 ds.w    1                ; offset: $12 (18)
  269. creationTime             ds.l    1                ; offset: $14 (20)        ;         Time when it was created 
  270. msgID                     ds        IPMMsgID        ; offset: $18 (24)
  271. family                     ds.l    1                ; offset: $28 (40)        ;  family this msg belongs (e.g. mail) 
  272. sizeof                     EQU *                    ; size:   $2C (44)
  273.                         ENDR
  274.  
  275. kIPMDeliveryNotificationBit        EQU        0
  276. kIPMNonDeliveryNotificationBit    EQU        1
  277. kIPMEncloseOriginalBit            EQU        2
  278. kIPMSummaryReportBit            EQU        3                    ; modify enclose original to only on error 
  279. kIPMOriginalOnlyOnErrorBit        EQU        4
  280.  
  281. kIPMNoNotificationMask            EQU        $00
  282. kIPMDeliveryNotificationMask    EQU        $01
  283. kIPMNonDeliveryNotificationMask    EQU        $02
  284. kIPMDontEncloseOriginalMask        EQU        $00
  285. kIPMEncloseOriginalMask            EQU        $04
  286. kIPMImmediateReportMask            EQU        $00
  287. kIPMSummaryReportMask            EQU        $08
  288. kIPMOriginalOnlyOnErrorMask        EQU        $10
  289. kIPMEncloseOriginalOnErrorMask    EQU        $14
  290. ;  standard Non delivery codes 
  291.  
  292. kIPMNoSuchRecipient                EQU        $0001
  293. kIPMRecipientMalformed            EQU        $0002
  294. kIPMRecipientAmbiguous            EQU        $0003
  295. kIPMRecipientAccessDenied        EQU        $0004
  296. kIPMGroupExpansionProblem        EQU        $0005
  297. kIPMMsgUnreadable                EQU        $0006
  298. kIPMMsgExpired                    EQU        $0007
  299. kIPMMsgNoTranslatableContent    EQU        $0008
  300. kIPMRecipientReqStdCont            EQU        $0009
  301. kIPMRecipientReqSnapShot        EQU        $000A
  302. kIPMNoTransferDiskFull            EQU        $000B
  303. kIPMNoTransferMsgRejectedbyDest    EQU        $000C
  304. kIPMNoTransferMsgTooLarge        EQU        $000D
  305. ; ************************************************************************
  306. ;This is the structure that will be returned by enumerate and getmsginfo
  307. ;This definition is just to give you a template, the position of msgType
  308. ;is variable since this is a packed structure.  procHint and msgType are
  309. ;packed and even length padded.
  310. ;
  311. ;* master message info 
  312.  
  313. IPMMsgInfo                RECORD 0
  314. sequenceNum                 ds.l    1                ; offset: $0 (0)
  315. userData                 ds.l    1                ; offset: $4 (4)
  316. respIndex                 ds.w    1                ; offset: $8 (8)
  317. padByte                     ds.b    1                ; offset: $A (10)
  318. priority                 ds.b    1                ; offset: $B (11)
  319. msgSize                     ds.l    1                ; offset: $C (12)
  320. originalRcptCount         ds.w    1                ; offset: $10 (16)
  321. reserved                 ds.w    1                ; offset: $12 (18)
  322. creationTime             ds.l    1                ; offset: $14 (20)
  323. msgID                     ds        IPMMsgID        ; offset: $18 (24)
  324. family                     ds.l    1                ; offset: $28 (40)        ;  family this msg belongs (e.g. mail) 
  325. procHint                 ds        IPMProcHint        ; offset: $2C (44)
  326. filler2                     ds.b    1                ; offset: $4D (77)
  327. msgType                     ds        IPMMsgType        ; offset: $4E (78)
  328. sizeof                     EQU *                    ; size:   $72 (114)
  329.                         ENDR
  330. IPMBlockType            RECORD 0
  331. f                         ds        OCECreatorType
  332. sizeof                     EQU *                    ; size:   $8 (8)
  333.                         ENDR
  334.  
  335.  
  336. IPMTOC                    RECORD 0
  337. blockType                 ds        IPMBlockType    ; offset: $0 (0)
  338. blockOffset                 ds.l    1                ; offset: $8 (8)
  339. blockSize                 ds.l    1                ; offset: $C (12)
  340. blockRefCon                 ds.l    1                ; offset: $10 (16)
  341. sizeof                     EQU *                    ; size:   $14 (20)
  342.                         ENDR
  343. ;The following structure is just to describe the layout of the SingleFilter.
  344. ;Each field should be packed and word aligned when passed to the IPM ToolBox.
  345. ;
  346.  
  347. IPMSingleFilter            RECORD 0
  348. priority                 ds.b    1                ; offset: $0 (0)
  349. padByte                     ds.b    1                ; offset: $1 (1)
  350. family                     ds.l    1                ; offset: $2 (2)        ;  family this msg belongs (e.g. mail), '????' for all 
  351. script                     ds.w    1                ; offset: $6 (6)        ;  Language Identifier 
  352. hint                     ds        IPMProcHint        ; offset: $8 (8)
  353. filler2                     ds.b    1                ; offset: $29 (41)
  354. msgType                     ds        IPMMsgType        ; offset: $2A (42)
  355. sizeof                     EQU *                    ; size:   $4E (78)
  356.                         ENDR
  357. IPMFilter                RECORD 0
  358. count                     ds.w    1                ; offset: $0 (0)
  359. sFilters                 ds        IPMSingleFilter ; offset: $2 (2) <-- really an array of length one
  360. sizeof                     EQU *                    ; size:   $50 (80)
  361.                         ENDR
  362. ; *************************************************************************
  363. ;Following structures define the “start” of a recipient report block and the
  364. ;elements of the array respectively.
  365. ;
  366.  
  367. IPMReportBlockHeader    RECORD 0
  368. msgID                     ds        IPMMsgID        ; offset: $0 (0)        ;  message id of the original 
  369. creationTime             ds.l    1                ; offset: $10 (16)        ;  creation time of the report 
  370. sizeof                     EQU *                    ; size:   $14 (20)
  371.                         ENDR
  372. OCERecipientReport        RECORD 0
  373. rcptIndex                 ds.w    1                ; offset: $0 (0)        ;  index of recipient in original message 
  374. result                     ds.w    1                ; offset: $2 (2)        ;  result of sending letter to this recipient
  375. sizeof                     EQU *                    ; size:   $4 (4)
  376.                         ENDR
  377. ; ************************************************************************
  378.  
  379.  
  380. ; typedef IPMParamBlock *                IPMParamBlockPtr
  381.  
  382. IPMOpenContextPB        RECORD 0
  383. qLink                     ds.l    1                ; offset: $0 (0)
  384. reservedH1                 ds.l    1                ; offset: $4 (4)
  385. reservedH2                 ds.l    1                ; offset: $8 (8)
  386. ioCompletion             ds.l    1                ; offset: $C (12)
  387. ioResult                 ds.w    1                ; offset: $10 (16)
  388. saveA5                     ds.l    1                ; offset: $12 (18)
  389. reqCode                     ds.w    1                ; offset: $16 (22)
  390. contextRef                 ds.l    1                ; offset: $18 (24)        ;  <--  Context reference to be used in further calls
  391. sizeof                     EQU *                    ; size:   $1C (28)
  392.                         ENDR
  393. IPMCloseContextPB        RECORD 0
  394. f                         ds        IPMOpenContextPB
  395. sizeof                     EQU *                    ; size:   $1C (28)
  396.                         ENDR
  397.  
  398.  
  399. IPMCreateQueuePB        RECORD 0
  400. qLink                     ds.l    1                ; offset: $0 (0)
  401. reservedH1                 ds.l    1                ; offset: $4 (4)
  402. reservedH2                 ds.l    1                ; offset: $8 (8)
  403. ioCompletion             ds.l    1                ; offset: $C (12)
  404. ioResult                 ds.w    1                ; offset: $10 (16)
  405. saveA5                     ds.l    1                ; offset: $12 (18)
  406. reqCode                     ds.w    1                ; offset: $16 (22)
  407. filler1                     ds.l    1                ; offset: $18 (24)
  408. queue                     ds.l    1                ; offset: $1C (28)
  409. identity                 ds.l    1                ; offset: $20 (32)        ;  used only if queue is remote 
  410. owner                     ds.l    1                ; offset: $24 (36)        ;  used only if queue is remote 
  411. sizeof                     EQU *                    ; size:   $28 (40)
  412.                         ENDR
  413. ;  For createqueue and deletequeue only queue and identity are used 
  414. IPMDeleteQueuePB        RECORD 0
  415. f                         ds        IPMCreateQueuePB
  416. sizeof                     EQU *                    ; size:   $28 (40)
  417.                         ENDR
  418.  
  419.  
  420. IPMOpenQueuePB            RECORD 0
  421. qLink                     ds.l    1                ; offset: $0 (0)
  422. reservedH1                 ds.l    1                ; offset: $4 (4)
  423. reservedH2                 ds.l    1                ; offset: $8 (8)
  424. ioCompletion             ds.l    1                ; offset: $C (12)
  425. ioResult                 ds.w    1                ; offset: $10 (16)
  426. saveA5                     ds.l    1                ; offset: $12 (18)
  427. reqCode                     ds.w    1                ; offset: $16 (22)
  428. contextRef                 ds.l    1                ; offset: $18 (24)
  429. queue                     ds.l    1                ; offset: $1C (28)
  430. identity                 ds.l    1                ; offset: $20 (32)
  431. filter                     ds.l    1                ; offset: $24 (36)
  432. newQueueRef                 ds.l    1                ; offset: $28 (40)
  433. notificationProc         ds.l    1                ; offset: $2C (44)
  434. userData                 ds.l    1                ; offset: $30 (48)
  435. noteType                 ds.b    1                ; offset: $34 (52)
  436. padByte                     ds.b    1                ; offset: $35 (53)
  437. reserved                 ds.l    1                ; offset: $36 (54)
  438. reserved2                 ds.l    1                ; offset: $3A (58)
  439. sizeof                     EQU *                    ; size:   $3E (62)
  440.                         ENDR
  441. IPMCloseQueuePB            RECORD 0
  442. qLink                     ds.l    1                ; offset: $0 (0)
  443. reservedH1                 ds.l    1                ; offset: $4 (4)
  444. reservedH2                 ds.l    1                ; offset: $8 (8)
  445. ioCompletion             ds.l    1                ; offset: $C (12)
  446. ioResult                 ds.w    1                ; offset: $10 (16)
  447. saveA5                     ds.l    1                ; offset: $12 (18)
  448. reqCode                     ds.w    1                ; offset: $16 (22)
  449. queueRef                 ds.l    1                ; offset: $18 (24)
  450. sizeof                     EQU *                    ; size:   $1C (28)
  451.                         ENDR
  452. IPMEnumerateQueuePB        RECORD 0
  453. qLink                     ds.l    1                ; offset: $0 (0)
  454. reservedH1                 ds.l    1                ; offset: $4 (4)
  455. reservedH2                 ds.l    1                ; offset: $8 (8)
  456. ioCompletion             ds.l    1                ; offset: $C (12)
  457. ioResult                 ds.w    1                ; offset: $10 (16)
  458. saveA5                     ds.l    1                ; offset: $12 (18)
  459. reqCode                     ds.w    1                ; offset: $16 (22)
  460. queueRef                 ds.l    1                ; offset: $18 (24)
  461. startSeqNum                 ds.l    1                ; offset: $1C (28)
  462. getProcHint                 ds.b    1                ; offset: $20 (32)
  463. getMsgType                 ds.b    1                ; offset: $21 (33)
  464. filler                     ds.w    1                ; offset: $22 (34)
  465. filter                     ds.l    1                ; offset: $24 (36)
  466. numToGet                 ds.w    1                ; offset: $28 (40)
  467. numGotten                 ds.w    1                ; offset: $2A (42)
  468. enumCount                 ds.l    1                ; offset: $2C (44)
  469. enumBuffer                 ds.l    1                ; offset: $30 (48)        ;  will be packed array of IPMMsgInfo 
  470. actEnumCount             ds.l    1                ; offset: $34 (52)
  471. sizeof                     EQU *                    ; size:   $38 (56)
  472.                         ENDR
  473. IPMChangeQueueFilterPB    RECORD 0
  474. f                         ds        IPMEnumerateQueuePB
  475. sizeof                     EQU *                    ; size:   $38 (56)
  476.                         ENDR
  477.  
  478.  
  479. IPMDeleteMsgRangePB        RECORD 0
  480. qLink                     ds.l    1                ; offset: $0 (0)
  481. reservedH1                 ds.l    1                ; offset: $4 (4)
  482. reservedH2                 ds.l    1                ; offset: $8 (8)
  483. ioCompletion             ds.l    1                ; offset: $C (12)
  484. ioResult                 ds.w    1                ; offset: $10 (16)
  485. saveA5                     ds.l    1                ; offset: $12 (18)
  486. reqCode                     ds.w    1                ; offset: $16 (22)
  487. queueRef                 ds.l    1                ; offset: $18 (24)
  488. startSeqNum                 ds.l    1                ; offset: $1C (28)
  489. endSeqNum                 ds.l    1                ; offset: $20 (32)
  490. lastSeqNum                 ds.l    1                ; offset: $24 (36)
  491. sizeof                     EQU *                    ; size:   $28 (40)
  492.                         ENDR
  493.  
  494. IPMOpenMsgPB            RECORD 0
  495. qLink                     ds.l    1                ; offset: $0 (0)
  496. reservedH1                 ds.l    1                ; offset: $4 (4)
  497. reservedH2                 ds.l    1                ; offset: $8 (8)
  498. ioCompletion             ds.l    1                ; offset: $C (12)
  499. ioResult                 ds.w    1                ; offset: $10 (16)
  500. saveA5                     ds.l    1                ; offset: $12 (18)
  501. reqCode                     ds.w    1                ; offset: $16 (22)
  502. queueRef                 ds.l    1                ; offset: $18 (24)
  503. sequenceNum                 ds.l    1                ; offset: $1C (28)
  504. newMsgRef                 ds.l    1                ; offset: $20 (32)
  505. actualSeqNum             ds.l    1                ; offset: $24 (36)
  506. exactMatch                 ds.b    1                ; offset: $28 (40)
  507. padByte                     ds.b    1                ; offset: $29 (41)
  508. reserved                 ds.l    1                ; offset: $2A (42)
  509. sizeof                     EQU *                    ; size:   $2E (46)
  510.                         ENDR
  511.  
  512. IPMOpenHFSMsgPB            RECORD 0
  513. qLink                     ds.l    1                ; offset: $0 (0)
  514. reservedH1                 ds.l    1                ; offset: $4 (4)
  515. reservedH2                 ds.l    1                ; offset: $8 (8)
  516. ioCompletion             ds.l    1                ; offset: $C (12)
  517. ioResult                 ds.w    1                ; offset: $10 (16)
  518. saveA5                     ds.l    1                ; offset: $12 (18)
  519. reqCode                     ds.w    1                ; offset: $16 (22)
  520. hfsPath                     ds.l    1                ; offset: $18 (24)
  521. filler                     ds.l    1                ; offset: $1C (28)
  522. newMsgRef                 ds.l    1                ; offset: $20 (32)
  523. filler2                     ds.l    1                ; offset: $24 (36)
  524. filler3                     ds.b    1                ; offset: $28 (40)
  525. filler4                     ds.b    1                ; offset: $29 (41)
  526. reserved                 ds.l    1                ; offset: $2A (42)
  527. sizeof                     EQU *                    ; size:   $2E (46)
  528.                         ENDR
  529.  
  530. IPMOpenBlockAsMsgPB        RECORD 0
  531. qLink                     ds.l    1                ; offset: $0 (0)
  532. reservedH1                 ds.l    1                ; offset: $4 (4)
  533. reservedH2                 ds.l    1                ; offset: $8 (8)
  534. ioCompletion             ds.l    1                ; offset: $C (12)
  535. ioResult                 ds.w    1                ; offset: $10 (16)
  536. saveA5                     ds.l    1                ; offset: $12 (18)
  537. reqCode                     ds.w    1                ; offset: $16 (22)
  538. msgRef                     ds.l    1                ; offset: $18 (24)
  539. filler                     ds.l    1                ; offset: $1C (28)
  540. newMsgRef                 ds.l    1                ; offset: $20 (32)
  541. filler2                     ds.w    7                ; offset: $24 (36)
  542. blockIndex                 ds.w    1                ; offset: $32 (50)
  543. sizeof                     EQU *                    ; size:   $34 (52)
  544.                         ENDR
  545.  
  546. IPMCloseMsgPB            RECORD 0
  547. qLink                     ds.l    1                ; offset: $0 (0)
  548. reservedH1                 ds.l    1                ; offset: $4 (4)
  549. reservedH2                 ds.l    1                ; offset: $8 (8)
  550. ioCompletion             ds.l    1                ; offset: $C (12)
  551. ioResult                 ds.w    1                ; offset: $10 (16)
  552. saveA5                     ds.l    1                ; offset: $12 (18)
  553. reqCode                     ds.w    1                ; offset: $16 (22)
  554. msgRef                     ds.l    1                ; offset: $18 (24)
  555. deleteMsg                 ds.b    1                ; offset: $1C (28)
  556. filler1                     ds.b    1                ; offset: $1D (29)
  557. sizeof                     EQU *                    ; size:   $1E (30)
  558.                         ENDR
  559.  
  560. IPMGetMsgInfoPB            RECORD 0
  561. qLink                     ds.l    1                ; offset: $0 (0)
  562. reservedH1                 ds.l    1                ; offset: $4 (4)
  563. reservedH2                 ds.l    1                ; offset: $8 (8)
  564. ioCompletion             ds.l    1                ; offset: $C (12)
  565. ioResult                 ds.w    1                ; offset: $10 (16)
  566. saveA5                     ds.l    1                ; offset: $12 (18)
  567. reqCode                     ds.w    1                ; offset: $16 (22)
  568. msgRef                     ds.l    1                ; offset: $18 (24)
  569. info                     ds.l    1                ; offset: $1C (28)
  570. sizeof                     EQU *                    ; size:   $20 (32)
  571.                         ENDR
  572.  
  573. IPMReadHeaderPB            RECORD 0
  574. qLink                     ds.l    1                ; offset: $0 (0)
  575. reservedH1                 ds.l    1                ; offset: $4 (4)
  576. reservedH2                 ds.l    1                ; offset: $8 (8)
  577. ioCompletion             ds.l    1                ; offset: $C (12)
  578. ioResult                 ds.w    1                ; offset: $10 (16)
  579. saveA5                     ds.l    1                ; offset: $12 (18)
  580. reqCode                     ds.w    1                ; offset: $16 (22)
  581. msgRef                     ds.l    1                ; offset: $18 (24)
  582. fieldSelector             ds.w    1                ; offset: $1C (28)
  583. offset                     ds.l    1                ; offset: $1E (30)
  584. count                     ds.l    1                ; offset: $22 (34)
  585. buffer                     ds.l    1                ; offset: $26 (38)
  586. actualCount                 ds.l    1                ; offset: $2A (42)
  587. filler                     ds.w    1                ; offset: $2E (46)
  588. remaining                 ds.l    1                ; offset: $30 (48)
  589. sizeof                     EQU *                    ; size:   $34 (52)
  590.                         ENDR
  591.  
  592. IPMReadRecipientPB        RECORD 0
  593. qLink                     ds.l    1                ; offset: $0 (0)
  594. reservedH1                 ds.l    1                ; offset: $4 (4)
  595. reservedH2                 ds.l    1                ; offset: $8 (8)
  596. ioCompletion             ds.l    1                ; offset: $C (12)
  597. ioResult                 ds.w    1                ; offset: $10 (16)
  598. saveA5                     ds.l    1                ; offset: $12 (18)
  599. reqCode                     ds.w    1                ; offset: $16 (22)
  600. msgRef                     ds.l    1                ; offset: $18 (24)
  601. rcptIndex                 ds.w    1                ; offset: $1C (28)
  602. offset                     ds.l    1                ; offset: $1E (30)
  603. count                     ds.l    1                ; offset: $22 (34)
  604. buffer                     ds.l    1                ; offset: $26 (38)
  605. actualCount                 ds.l    1                ; offset: $2A (42)
  606. reserved                 ds.w    1                ; offset: $2E (46)        ;  must be zero 
  607. remaining                 ds.l    1                ; offset: $30 (48)
  608. originalIndex             ds.w    1                ; offset: $34 (52)
  609. recipientOffsetFlags     ds.b    1                ; offset: $36 (54)
  610. filler1                     ds.b    1                ; offset: $37 (55)
  611. sizeof                     EQU *                    ; size:   $38 (56)
  612.                         ENDR
  613.  
  614. ;replyQueue works like recipient. [can no longer read it via ReadHeader]
  615. ;OriginalIndex is meaningless, rcptFlags are used seperately and there are
  616. ;currently none defined.
  617. ;
  618.  
  619. IPMReadReplyQueuePB        RECORD 0
  620. f                         ds        IPMReadRecipientPB
  621. sizeof                     EQU *                    ; size:   $38 (56)
  622.                         ENDR
  623.  
  624.  
  625. IPMGetBlkIndexPB        RECORD 0
  626. qLink                     ds.l    1                ; offset: $0 (0)
  627. reservedH1                 ds.l    1                ; offset: $4 (4)
  628. reservedH2                 ds.l    1                ; offset: $8 (8)
  629. ioCompletion             ds.l    1                ; offset: $C (12)
  630. ioResult                 ds.w    1                ; offset: $10 (16)
  631. saveA5                     ds.l    1                ; offset: $12 (18)
  632. reqCode                     ds.w    1                ; offset: $16 (22)
  633. msgRef                     ds.l    1                ; offset: $18 (24)
  634. blockType                 ds        IPMBlockType    ; offset: $1C (28)
  635. index                     ds.w    1                ; offset: $24 (36)
  636. startingFrom             ds.w    1                ; offset: $26 (38)
  637. actualBlockType             ds        IPMBlockType    ; offset: $28 (40)
  638. actualBlockIndex         ds.w    1                ; offset: $30 (48)
  639. sizeof                     EQU *                    ; size:   $32 (50)
  640.                         ENDR
  641.  
  642. IPMReadMsgPB            RECORD 0
  643. qLink                     ds.l    1                ; offset: $0 (0)
  644. reservedH1                 ds.l    1                ; offset: $4 (4)
  645. reservedH2                 ds.l    1                ; offset: $8 (8)
  646. ioCompletion             ds.l    1                ; offset: $C (12)
  647. ioResult                 ds.w    1                ; offset: $10 (16)
  648. saveA5                     ds.l    1                ; offset: $12 (18)
  649. reqCode                     ds.w    1                ; offset: $16 (22)
  650. msgRef                     ds.l    1                ; offset: $18 (24)
  651. mode                     ds.w    1                ; offset: $1C (28)
  652. offset                     ds.l    1                ; offset: $1E (30)
  653. count                     ds.l    1                ; offset: $22 (34)
  654. buffer                     ds.l    1                ; offset: $26 (38)
  655. actualCount                 ds.l    1                ; offset: $2A (42)
  656. blockIndex                 ds.w    1                ; offset: $2E (46)
  657. remaining                 ds.l    1                ; offset: $30 (48)
  658. sizeof                     EQU *                    ; size:   $34 (52)
  659.                         ENDR
  660. IPMVerifySignaturePB    RECORD 0
  661. qLink                     ds.l    1                ; offset: $0 (0)
  662. reservedH1                 ds.l    1                ; offset: $4 (4)
  663. reservedH2                 ds.l    1                ; offset: $8 (8)
  664. ioCompletion             ds.l    1                ; offset: $C (12)
  665. ioResult                 ds.w    1                ; offset: $10 (16)
  666. saveA5                     ds.l    1                ; offset: $12 (18)
  667. reqCode                     ds.w    1                ; offset: $16 (22)
  668. msgRef                     ds.l    1                ; offset: $18 (24)
  669. signatureContext         ds.l    1                ; offset: $1C (28)
  670. sizeof                     EQU *                    ; size:   $20 (32)
  671.                         ENDR
  672. IPMNewMsgPB                RECORD 0
  673. qLink                     ds.l    1                ; offset: $0 (0)
  674. reservedH1                 ds.l    1                ; offset: $4 (4)
  675. reservedH2                 ds.l    1                ; offset: $8 (8)
  676. ioCompletion             ds.l    1                ; offset: $C (12)
  677. ioResult                 ds.w    1                ; offset: $10 (16)
  678. saveA5                     ds.l    1                ; offset: $12 (18)
  679. reqCode                     ds.w    1                ; offset: $16 (22)
  680. filler                     ds.l    1                ; offset: $18 (24)
  681. recipient                 ds.l    1                ; offset: $1C (28)
  682. replyQueue                 ds.l    1                ; offset: $20 (32)
  683. procHint                 ds.l    1                ; offset: $24 (36)
  684. filler2                     ds.w    1                ; offset: $28 (40)
  685. msgType                     ds.l    1                ; offset: $2A (42)
  686. refCon                     ds.l    1                ; offset: $2E (46)
  687. newMsgRef                 ds.l    1                ; offset: $32 (50)
  688. filler3                     ds.w    1                ; offset: $36 (54)
  689. filler4                     ds.l    1                ; offset: $38 (56)
  690. identity                 ds.l    1                ; offset: $3C (60)
  691. sender                     ds.l    1                ; offset: $40 (64)
  692. internalUse                 ds.l    1                ; offset: $44 (68)
  693. internalUse2             ds.l    1                ; offset: $48 (72)
  694. sizeof                     EQU *                    ; size:   $4C (76)
  695.                         ENDR
  696. IPMNewHFSMsgPB            RECORD 0
  697. qLink                     ds.l    1                ; offset: $0 (0)
  698. reservedH1                 ds.l    1                ; offset: $4 (4)
  699. reservedH2                 ds.l    1                ; offset: $8 (8)
  700. ioCompletion             ds.l    1                ; offset: $C (12)
  701. ioResult                 ds.w    1                ; offset: $10 (16)
  702. saveA5                     ds.l    1                ; offset: $12 (18)
  703. reqCode                     ds.w    1                ; offset: $16 (22)
  704. hfsPath                     ds.l    1                ; offset: $18 (24)
  705. recipient                 ds.l    1                ; offset: $1C (28)
  706. replyQueue                 ds.l    1                ; offset: $20 (32)
  707. procHint                 ds.l    1                ; offset: $24 (36)
  708. filler2                     ds.w    1                ; offset: $28 (40)
  709. msgType                     ds.l    1                ; offset: $2A (42)
  710. refCon                     ds.l    1                ; offset: $2E (46)
  711. newMsgRef                 ds.l    1                ; offset: $32 (50)
  712. filler3                     ds.w    1                ; offset: $36 (54)
  713. filler4                     ds.l    1                ; offset: $38 (56)
  714. identity                 ds.l    1                ; offset: $3C (60)
  715. sender                     ds.l    1                ; offset: $40 (64)
  716. internalUse                 ds.l    1                ; offset: $44 (68)
  717. internalUse2             ds.l    1                ; offset: $48 (72)
  718. sizeof                     EQU *                    ; size:   $4C (76)
  719.                         ENDR
  720. IPMNestMsgPB            RECORD 0
  721. qLink                     ds.l    1                ; offset: $0 (0)
  722. reservedH1                 ds.l    1                ; offset: $4 (4)
  723. reservedH2                 ds.l    1                ; offset: $8 (8)
  724. ioCompletion             ds.l    1                ; offset: $C (12)
  725. ioResult                 ds.w    1                ; offset: $10 (16)
  726. saveA5                     ds.l    1                ; offset: $12 (18)
  727. reqCode                     ds.w    1                ; offset: $16 (22)
  728. msgRef                     ds.l    1                ; offset: $18 (24)
  729. filler                     ds.w    9                ; offset: $1C (28)
  730. refCon                     ds.l    1                ; offset: $2E (46)
  731. msgToNest                 ds.l    1                ; offset: $32 (50)
  732. filler2                     ds.w    1                ; offset: $36 (54)
  733. startingOffset             ds.l    1                ; offset: $38 (56)
  734. sizeof                     EQU *                    ; size:   $3C (60)
  735.                         ENDR
  736.  
  737. IPMNewNestedMsgBlockPB    RECORD 0
  738. qLink                     ds.l    1                ; offset: $0 (0)
  739. reservedH1                 ds.l    1                ; offset: $4 (4)
  740. reservedH2                 ds.l    1                ; offset: $8 (8)
  741. ioCompletion             ds.l    1                ; offset: $C (12)
  742. ioResult                 ds.w    1                ; offset: $10 (16)
  743. saveA5                     ds.l    1                ; offset: $12 (18)
  744. reqCode                     ds.w    1                ; offset: $16 (22)
  745. msgRef                     ds.l    1                ; offset: $18 (24)
  746. recipient                 ds.l    1                ; offset: $1C (28)
  747. replyQueue                 ds.l    1                ; offset: $20 (32)
  748. procHint                 ds.l    1                ; offset: $24 (36)
  749. filler1                     ds.w    1                ; offset: $28 (40)
  750. msgType                     ds.l    1                ; offset: $2A (42)
  751. refCon                     ds.l    1                ; offset: $2E (46)
  752. newMsgRef                 ds.l    1                ; offset: $32 (50)
  753. filler2                     ds.w    1                ; offset: $36 (54)
  754. startingOffset             ds.l    1                ; offset: $38 (56)
  755. identity                 ds.l    1                ; offset: $3C (60)
  756. sender                     ds.l    1                ; offset: $40 (64)
  757. internalUse                 ds.l    1                ; offset: $44 (68)
  758. internalUse2             ds.l    1                ; offset: $48 (72)
  759. sizeof                     EQU *                    ; size:   $4C (76)
  760.                         ENDR
  761.  
  762. IPMEndMsgPB                RECORD 0
  763. qLink                     ds.l    1                ; offset: $0 (0)
  764. reservedH1                 ds.l    1                ; offset: $4 (4)
  765. reservedH2                 ds.l    1                ; offset: $8 (8)
  766. ioCompletion             ds.l    1                ; offset: $C (12)
  767. ioResult                 ds.w    1                ; offset: $10 (16)
  768. saveA5                     ds.l    1                ; offset: $12 (18)
  769. reqCode                     ds.w    1                ; offset: $16 (22)
  770. msgRef                     ds.l    1                ; offset: $18 (24)
  771. msgID                     ds        IPMMsgID        ; offset: $1C (28)
  772. msgTitle                 ds.l    1                ; offset: $2C (44)
  773. deliveryNotification     ds.b    1                ; offset: $30 (48)
  774. priority                 ds.b    1                ; offset: $31 (49)
  775. cancel                     ds.b    1                ; offset: $32 (50)
  776. padByte                     ds.b    1                ; offset: $33 (51)
  777. reserved                 ds.l    1                ; offset: $34 (52)
  778. signature                 ds.l    1                ; offset: $38 (56)
  779. signatureSize             ds.l    1                ; offset: $3C (60)
  780. signatureContext         ds.l    1                ; offset: $40 (64)
  781. ;  family this msg belongs (e.g. mail) use kIPMFamilyUnspecified by default 
  782. family                     ds.l    1                ; offset: $44 (68)
  783. sizeof                     EQU *                    ; size:   $48 (72)
  784.                         ENDR
  785.  
  786. IPMAddRecipientPB        RECORD 0
  787. qLink                     ds.l    1                ; offset: $0 (0)
  788. reservedH1                 ds.l    1                ; offset: $4 (4)
  789. reservedH2                 ds.l    1                ; offset: $8 (8)
  790. ioCompletion             ds.l    1                ; offset: $C (12)
  791. ioResult                 ds.w    1                ; offset: $10 (16)
  792. saveA5                     ds.l    1                ; offset: $12 (18)
  793. reqCode                     ds.w    1                ; offset: $16 (22)
  794. msgRef                     ds.l    1                ; offset: $18 (24)
  795. recipient                 ds.l    1                ; offset: $1C (28)
  796. reserved                 ds.l    1                ; offset: $20 (32)
  797. sizeof                     EQU *                    ; size:   $24 (36)
  798.                         ENDR
  799.  
  800. IPMAddReplyQueuePB        RECORD 0
  801. qLink                     ds.l    1                ; offset: $0 (0)
  802. reservedH1                 ds.l    1                ; offset: $4 (4)
  803. reservedH2                 ds.l    1                ; offset: $8 (8)
  804. ioCompletion             ds.l    1                ; offset: $C (12)
  805. ioResult                 ds.w    1                ; offset: $10 (16)
  806. saveA5                     ds.l    1                ; offset: $12 (18)
  807. reqCode                     ds.w    1                ; offset: $16 (22)
  808. msgRef                     ds.l    1                ; offset: $18 (24)
  809. filler                     ds.l    1                ; offset: $1C (28)
  810. replyQueue                 ds.l    1                ; offset: $20 (32)
  811. sizeof                     EQU *                    ; size:   $24 (36)
  812.                         ENDR
  813.  
  814. IPMNewBlockPB            RECORD 0
  815. qLink                     ds.l    1                ; offset: $0 (0)
  816. reservedH1                 ds.l    1                ; offset: $4 (4)
  817. reservedH2                 ds.l    1                ; offset: $8 (8)
  818. ioCompletion             ds.l    1                ; offset: $C (12)
  819. ioResult                 ds.w    1                ; offset: $10 (16)
  820. saveA5                     ds.l    1                ; offset: $12 (18)
  821. reqCode                     ds.w    1                ; offset: $16 (22)
  822. msgRef                     ds.l    1                ; offset: $18 (24)
  823. blockType                 ds        IPMBlockType    ; offset: $1C (28)
  824. filler                     ds.w    5                ; offset: $24 (36)
  825. refCon                     ds.l    1                ; offset: $2E (46)
  826. filler2                     ds.w    3                ; offset: $32 (50)
  827. startingOffset             ds.l    1                ; offset: $38 (56)
  828. sizeof                     EQU *                    ; size:   $3C (60)
  829.                         ENDR
  830.  
  831. IPMWriteMsgPB            RECORD 0
  832. qLink                     ds.l    1                ; offset: $0 (0)
  833. reservedH1                 ds.l    1                ; offset: $4 (4)
  834. reservedH2                 ds.l    1                ; offset: $8 (8)
  835. ioCompletion             ds.l    1                ; offset: $C (12)
  836. ioResult                 ds.w    1                ; offset: $10 (16)
  837. saveA5                     ds.l    1                ; offset: $12 (18)
  838. reqCode                     ds.w    1                ; offset: $16 (22)
  839. msgRef                     ds.l    1                ; offset: $18 (24)
  840. mode                     ds.w    1                ; offset: $1C (28)
  841. offset                     ds.l    1                ; offset: $1E (30)
  842. count                     ds.l    1                ; offset: $22 (34)
  843. buffer                     ds.l    1                ; offset: $26 (38)
  844. actualCount                 ds.l    1                ; offset: $2A (42)
  845. currentBlock             ds.b    1                ; offset: $2E (46)
  846. filler1                     ds.b    1                ; offset: $2F (47)
  847. sizeof                     EQU *                    ; size:   $30 (48)
  848.                         ENDR
  849.  
  850.  
  851. IPMParamBlock            RECORD 0
  852. qLink                     ds.l    1                ; offset: $0 (0)
  853. reservedH1                 ds.l    1                ; offset: $4 (4)
  854. reservedH2                 ds.l    1                ; offset: $8 (8)
  855. ioCompletion             ds.l    1                ; offset: $C (12)
  856. ioResult                 ds.w    1                ; offset: $10 (16)
  857. saveA5                     ds.l    1                ; offset: $12 (18)
  858. reqCode                     ds.w    1                ; offset: $16 (22)
  859.                          ORG 0
  860. openContextPB             ds        IPMOpenContextPB ; offset: $0 (0)
  861.                          ORG 0
  862. closeContextPB             ds        IPMCloseContextPB ; offset: $0 (0)
  863.                          ORG 0
  864. createQueuePB             ds        IPMCreateQueuePB ; offset: $0 (0)
  865.                          ORG 0
  866. deleteQueuePB             ds        IPMDeleteQueuePB ; offset: $0 (0)
  867.                          ORG 0
  868. openQueuePB                 ds        IPMOpenQueuePB ; offset: $0 (0)
  869.                          ORG 0
  870. closeQueuePB             ds        IPMCloseQueuePB ; offset: $0 (0)
  871.                          ORG 0
  872. enumerateQueuePB         ds        IPMEnumerateQueuePB ; offset: $0 (0)
  873.                          ORG 0
  874. changeQueueFilterPB         ds        IPMChangeQueueFilterPB ; offset: $0 (0)
  875.                          ORG 0
  876. deleteMsgRangePB         ds        IPMDeleteMsgRangePB ; offset: $0 (0)
  877.                          ORG 0
  878. openMsgPB                 ds        IPMOpenMsgPB    ; offset: $0 (0)
  879.                          ORG 0
  880. openHFSMsgPB             ds        IPMOpenHFSMsgPB ; offset: $0 (0)
  881.                          ORG 0
  882. openBlockAsMsgPB         ds        IPMOpenBlockAsMsgPB ; offset: $0 (0)
  883.                          ORG 0
  884. closeMsgPB                 ds        IPMCloseMsgPB    ; offset: $0 (0)
  885.                          ORG 0
  886. getMsgInfoPB             ds        IPMGetMsgInfoPB ; offset: $0 (0)
  887.                          ORG 0
  888. readHeaderPB             ds        IPMReadHeaderPB ; offset: $0 (0)
  889.                          ORG 0
  890. readRecipientPB             ds        IPMReadRecipientPB ; offset: $0 (0)
  891.                          ORG 0
  892. readReplyQueuePB         ds        IPMReadReplyQueuePB ; offset: $0 (0)
  893.                          ORG 0
  894. getBlkIndexPB             ds        IPMGetBlkIndexPB ; offset: $0 (0)
  895.                          ORG 0
  896. readMsgPB                 ds        IPMReadMsgPB    ; offset: $0 (0)
  897.                          ORG 0
  898. verifySignaturePB         ds        IPMVerifySignaturePB ; offset: $0 (0)
  899.                          ORG 0
  900. newMsgPB                 ds        IPMNewMsgPB        ; offset: $0 (0)
  901.                          ORG 0
  902. newHFSMsgPB                 ds        IPMNewHFSMsgPB ; offset: $0 (0)
  903.                          ORG 0
  904. nestMsgPB                 ds        IPMNestMsgPB    ; offset: $0 (0)
  905.                          ORG 0
  906. newNestedMsgBlockPB         ds        IPMNewNestedMsgBlockPB ; offset: $0 (0)
  907.                          ORG 0
  908. endMsgPB                 ds        IPMEndMsgPB        ; offset: $0 (0)
  909.                          ORG 0
  910. addRecipientPB             ds        IPMAddRecipientPB ; offset: $0 (0)
  911.                          ORG 0
  912. addReplyQueuePB             ds        IPMAddReplyQueuePB ; offset: $0 (0)
  913.                          ORG 0
  914. newBlockPB                 ds        IPMNewBlockPB    ; offset: $0 (0)
  915.                          ORG 0
  916. writeMsgPB                 ds        IPMWriteMsgPB    ; offset: $0 (0)
  917.                          ORG 76
  918. sizeof                     EQU *                    ; size:   $4C (76)
  919.                         ENDR
  920. ;
  921. ; pascal OSErr IPMOpenContext(IPMParamBlockPtr paramBlock, Boolean async)
  922. ;
  923.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  924.         Macro
  925.         _IPMOpenContext
  926.             move.w              #$0400,-(sp)
  927.             dc.w                $AA5E
  928.         EndM
  929.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  930.         IMPORT_CFM_FUNCTION IPMOpenContext
  931.     ENDIF
  932.  
  933. ;
  934. ; pascal OSErr IPMCloseContext(IPMParamBlockPtr paramBlock, Boolean async)
  935. ;
  936.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  937.         Macro
  938.         _IPMCloseContext
  939.             move.w              #$0401,-(sp)
  940.             dc.w                $AA5E
  941.         EndM
  942.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  943.         IMPORT_CFM_FUNCTION IPMCloseContext
  944.     ENDIF
  945.  
  946. ;
  947. ; pascal OSErr IPMNewMsg(IPMParamBlockPtr paramBlock, Boolean async)
  948. ;
  949.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  950.         Macro
  951.         _IPMNewMsg
  952.             move.w              #$0402,-(sp)
  953.             dc.w                $AA5E
  954.         EndM
  955.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  956.         IMPORT_CFM_FUNCTION IPMNewMsg
  957.     ENDIF
  958.  
  959. ;
  960. ; pascal OSErr IPMNewBlock(IPMParamBlockPtr paramBlock, Boolean async)
  961. ;
  962.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  963.         Macro
  964.         _IPMNewBlock
  965.             move.w              #$0404,-(sp)
  966.             dc.w                $AA5E
  967.         EndM
  968.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  969.         IMPORT_CFM_FUNCTION IPMNewBlock
  970.     ENDIF
  971.  
  972. ;
  973. ; pascal OSErr IPMNewNestedMsgBlock(IPMParamBlockPtr paramBlock, Boolean async)
  974. ;
  975.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  976.         Macro
  977.         _IPMNewNestedMsgBlock
  978.             move.w              #$0405,-(sp)
  979.             dc.w                $AA5E
  980.         EndM
  981.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  982.         IMPORT_CFM_FUNCTION IPMNewNestedMsgBlock
  983.     ENDIF
  984.  
  985. ;
  986. ; pascal OSErr IPMNestMsg(IPMParamBlockPtr paramBlock, Boolean async)
  987. ;
  988.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  989.         Macro
  990.         _IPMNestMsg
  991.             move.w              #$0406,-(sp)
  992.             dc.w                $AA5E
  993.         EndM
  994.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  995.         IMPORT_CFM_FUNCTION IPMNestMsg
  996.     ENDIF
  997.  
  998. ;
  999. ; pascal OSErr IPMWriteMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1000. ;
  1001.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1002.         Macro
  1003.         _IPMWriteMsg
  1004.             move.w              #$0407,-(sp)
  1005.             dc.w                $AA5E
  1006.         EndM
  1007.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1008.         IMPORT_CFM_FUNCTION IPMWriteMsg
  1009.     ENDIF
  1010.  
  1011. ;
  1012. ; pascal OSErr IPMEndMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1013. ;
  1014.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1015.         Macro
  1016.         _IPMEndMsg
  1017.             move.w              #$0408,-(sp)
  1018.             dc.w                $AA5E
  1019.         EndM
  1020.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1021.         IMPORT_CFM_FUNCTION IPMEndMsg
  1022.     ENDIF
  1023.  
  1024. ;
  1025. ; pascal OSErr IPMOpenQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1026. ;
  1027.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1028.         Macro
  1029.         _IPMOpenQueue
  1030.             move.w              #$0409,-(sp)
  1031.             dc.w                $AA5E
  1032.         EndM
  1033.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1034.         IMPORT_CFM_FUNCTION IPMOpenQueue
  1035.     ENDIF
  1036.  
  1037. ;
  1038. ; pascal OSErr IPMCloseQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1039. ;
  1040.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1041.         Macro
  1042.         _IPMCloseQueue
  1043.             move.w              #$040A,-(sp)
  1044.             dc.w                $AA5E
  1045.         EndM
  1046.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1047.         IMPORT_CFM_FUNCTION IPMCloseQueue
  1048.     ENDIF
  1049.  
  1050. ;  Always synchronous 
  1051. ;
  1052. ; pascal OSErr IPMVerifySignature(IPMParamBlockPtr paramBlock)
  1053. ;
  1054.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1055.         Macro
  1056.         _IPMVerifySignature
  1057.             moveq               #0,D0
  1058.             move.b              D0,-(sp)
  1059.             move.w              #$0422,-(sp)
  1060.             dc.w                $AA5E
  1061.         EndM
  1062.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1063.         IMPORT_CFM_FUNCTION IPMVerifySignature
  1064.     ENDIF
  1065.  
  1066. ;
  1067. ; pascal OSErr IPMOpenMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1068. ;
  1069.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1070.         Macro
  1071.         _IPMOpenMsg
  1072.             move.w              #$040B,-(sp)
  1073.             dc.w                $AA5E
  1074.         EndM
  1075.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1076.         IMPORT_CFM_FUNCTION IPMOpenMsg
  1077.     ENDIF
  1078.  
  1079. ;
  1080. ; pascal OSErr IPMCloseMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1081. ;
  1082.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1083.         Macro
  1084.         _IPMCloseMsg
  1085.             move.w              #$040C,-(sp)
  1086.             dc.w                $AA5E
  1087.         EndM
  1088.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1089.         IMPORT_CFM_FUNCTION IPMCloseMsg
  1090.     ENDIF
  1091.  
  1092. ;
  1093. ; pascal OSErr IPMReadMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1094. ;
  1095.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1096.         Macro
  1097.         _IPMReadMsg
  1098.             move.w              #$040D,-(sp)
  1099.             dc.w                $AA5E
  1100.         EndM
  1101.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1102.         IMPORT_CFM_FUNCTION IPMReadMsg
  1103.     ENDIF
  1104.  
  1105. ;
  1106. ; pascal OSErr IPMReadHeader(IPMParamBlockPtr paramBlock, Boolean async)
  1107. ;
  1108.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1109.         Macro
  1110.         _IPMReadHeader
  1111.             move.w              #$040E,-(sp)
  1112.             dc.w                $AA5E
  1113.         EndM
  1114.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1115.         IMPORT_CFM_FUNCTION IPMReadHeader
  1116.     ENDIF
  1117.  
  1118. ;
  1119. ; pascal OSErr IPMOpenBlockAsMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1120. ;
  1121.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1122.         Macro
  1123.         _IPMOpenBlockAsMsg
  1124.             move.w              #$040F,-(sp)
  1125.             dc.w                $AA5E
  1126.         EndM
  1127.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1128.         IMPORT_CFM_FUNCTION IPMOpenBlockAsMsg
  1129.     ENDIF
  1130.  
  1131. ;
  1132. ; pascal OSErr IPMNewHFSMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1133. ;
  1134.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1135.         Macro
  1136.         _IPMNewHFSMsg
  1137.             move.w              #$041E,-(sp)
  1138.             dc.w                $AA5E
  1139.         EndM
  1140.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1141.         IMPORT_CFM_FUNCTION IPMNewHFSMsg
  1142.     ENDIF
  1143.  
  1144. ;
  1145. ; pascal OSErr IPMReadRecipient(IPMParamBlockPtr paramBlock, Boolean async)
  1146. ;
  1147.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1148.         Macro
  1149.         _IPMReadRecipient
  1150.             move.w              #$0410,-(sp)
  1151.             dc.w                $AA5E
  1152.         EndM
  1153.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1154.         IMPORT_CFM_FUNCTION IPMReadRecipient
  1155.     ENDIF
  1156.  
  1157. ;
  1158. ; pascal OSErr IPMReadReplyQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1159. ;
  1160.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1161.         Macro
  1162.         _IPMReadReplyQueue
  1163.             move.w              #$0421,-(sp)
  1164.             dc.w                $AA5E
  1165.         EndM
  1166.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1167.         IMPORT_CFM_FUNCTION IPMReadReplyQueue
  1168.     ENDIF
  1169.  
  1170. ;
  1171. ; pascal OSErr IPMCreateQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1172. ;
  1173.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1174.         Macro
  1175.         _IPMCreateQueue
  1176.             move.w              #$0411,-(sp)
  1177.             dc.w                $AA5E
  1178.         EndM
  1179.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1180.         IMPORT_CFM_FUNCTION IPMCreateQueue
  1181.     ENDIF
  1182.  
  1183. ;
  1184. ; pascal OSErr IPMDeleteQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1185. ;
  1186.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1187.         Macro
  1188.         _IPMDeleteQueue
  1189.             move.w              #$0412,-(sp)
  1190.             dc.w                $AA5E
  1191.         EndM
  1192.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1193.         IMPORT_CFM_FUNCTION IPMDeleteQueue
  1194.     ENDIF
  1195.  
  1196. ;
  1197. ; pascal OSErr IPMEnumerateQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1198. ;
  1199.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1200.         Macro
  1201.         _IPMEnumerateQueue
  1202.             move.w              #$0413,-(sp)
  1203.             dc.w                $AA5E
  1204.         EndM
  1205.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1206.         IMPORT_CFM_FUNCTION IPMEnumerateQueue
  1207.     ENDIF
  1208.  
  1209. ;
  1210. ; pascal OSErr IPMChangeQueueFilter(IPMParamBlockPtr paramBlock, Boolean async)
  1211. ;
  1212.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1213.         Macro
  1214.         _IPMChangeQueueFilter
  1215.             move.w              #$0414,-(sp)
  1216.             dc.w                $AA5E
  1217.         EndM
  1218.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1219.         IMPORT_CFM_FUNCTION IPMChangeQueueFilter
  1220.     ENDIF
  1221.  
  1222. ;
  1223. ; pascal OSErr IPMDeleteMsgRange(IPMParamBlockPtr paramBlock, Boolean async)
  1224. ;
  1225.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1226.         Macro
  1227.         _IPMDeleteMsgRange
  1228.             move.w              #$0415,-(sp)
  1229.             dc.w                $AA5E
  1230.         EndM
  1231.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1232.         IMPORT_CFM_FUNCTION IPMDeleteMsgRange
  1233.     ENDIF
  1234.  
  1235. ;
  1236. ; pascal OSErr IPMAddRecipient(IPMParamBlockPtr paramBlock, Boolean async)
  1237. ;
  1238.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1239.         Macro
  1240.         _IPMAddRecipient
  1241.             move.w              #$0403,-(sp)
  1242.             dc.w                $AA5E
  1243.         EndM
  1244.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1245.         IMPORT_CFM_FUNCTION IPMAddRecipient
  1246.     ENDIF
  1247.  
  1248. ;
  1249. ; pascal OSErr IPMAddReplyQueue(IPMParamBlockPtr paramBlock, Boolean async)
  1250. ;
  1251.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1252.         Macro
  1253.         _IPMAddReplyQueue
  1254.             move.w              #$041D,-(sp)
  1255.             dc.w                $AA5E
  1256.         EndM
  1257.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1258.         IMPORT_CFM_FUNCTION IPMAddReplyQueue
  1259.     ENDIF
  1260.  
  1261. ;
  1262. ; pascal OSErr IPMOpenHFSMsg(IPMParamBlockPtr paramBlock, Boolean async)
  1263. ;
  1264.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1265.         Macro
  1266.         _IPMOpenHFSMsg
  1267.             move.w              #$0417,-(sp)
  1268.             dc.w                $AA5E
  1269.         EndM
  1270.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1271.         IMPORT_CFM_FUNCTION IPMOpenHFSMsg
  1272.     ENDIF
  1273.  
  1274. ;
  1275. ; pascal OSErr IPMGetBlkIndex(IPMParamBlockPtr paramBlock, Boolean async)
  1276. ;
  1277.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1278.         Macro
  1279.         _IPMGetBlkIndex
  1280.             move.w              #$0418,-(sp)
  1281.             dc.w                $AA5E
  1282.         EndM
  1283.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1284.         IMPORT_CFM_FUNCTION IPMGetBlkIndex
  1285.     ENDIF
  1286.  
  1287. ;
  1288. ; pascal OSErr IPMGetMsgInfo(IPMParamBlockPtr paramBlock, Boolean async)
  1289. ;
  1290.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1291.         Macro
  1292.         _IPMGetMsgInfo
  1293.             move.w              #$0419,-(sp)
  1294.             dc.w                $AA5E
  1295.         EndM
  1296.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1297.         IMPORT_CFM_FUNCTION IPMGetMsgInfo
  1298.     ENDIF
  1299.  
  1300.  
  1301.  
  1302.     ENDIF ; __OCEMESSAGING__ 
  1303.  
  1304.